﻿using System;
using System.Collections;
using System.Data.SqlClient;
using System.Security.Cryptography;
using System.Text;
using System.Windows.Forms;
using VentaElectrodomesticos.Sql;

namespace VentaElectrodomesticos.AbmUsuario
{
    public partial class FormModificacionUsuario : Form
    {
        private ClaseSQL sql;

        public FormModificacionUsuario()
        {
            InitializeComponent();
            sql = new ClaseSQL();
            this.llenarProvincias();
            this.llenarSucursales();
            this.llenarTipos();
        }

        private void llenarProvincias()
        {
            sql.Open();
            SqlDataReader query = sql.busquedaSQLDataReader("select nomProvincia from LAG.provincias");
            comboBoxProvincias.Items.Add("");

            while (query.Read())
            {
                String provincia = query[0].ToString();
                comboBoxProvincias.Items.Add(provincia);
            }
            query.Close();
            sql.Close();
        }


        private void llenarSucursales()
        {
            sql.Open();
            SqlDataReader query = sql.busquedaSQLDataReader("select idSucursal from LAG.sucursales");
            comboBoxSucursal.Items.Add("");

            while (query.Read())
            {
                String sucursal = query[0].ToString();
                comboBoxSucursal.Items.Add(sucursal);
            }
            query.Close();
            sql.Close();
        }

        private void llenarTipos()
        {
            sql.Open();
            SqlDataReader query = sql.busquedaSQLDataReader("select nomTipoUsu from LAG.usuarios_tipos");
            comboBoxSucursal.Items.Add("");

            while (query.Read())
            {
                String tipo = query[0].ToString();
                comboBoxTipo.Items.Add(tipo);
            }
            query.Close();
            sql.Close();
        }

        private void buttonBuscar_Click(object sender, EventArgs e)
        {
            try
            {
                dataGridView.Rows.Clear();
                sql.Open();
                String defaultquery = "SELECT nombre,apellido,dni,mail,idProvincia,idSucursal,idTipoUsu,a.idUsuario FROM LAG.usuarios a left join LAG.personas b on a.idPersona = b.idPersona WHERE a.password <> 'XX_aun_sin_pass_XX'"; 
                String query = agregarCondiciones(textBoxNombre.Text
                                                , textBoxApellido.Text
                                                , textBoxDni.Text
                                                , comboBoxProvincias.Text
                                                , comboBoxSucursal.Text
                                                , comboBoxTipo.Text);
                query = defaultquery + query;
                SqlDataReader reader = sql.busquedaSQLDataReader(query);

                while (reader.Read())
                {
                    dataGridView.Rows.Add(reader[7].ToString() //id
                                        , reader[0].ToString()  //nombre
                                        , reader[1].ToString()  //apellido
                                        , reader[2].ToString()  //dni
                                        , reader[3].ToString()  //mail
                                        , reader[4].ToString()  //idProvincia
                                        , reader[5].ToString()  //idSucursal
                                        , reader[6].ToString());  //idTipo
                }
                reader.Close();
            }
            catch (SqlException ex)
            {
                MessageBox.Show(ex.Message, "Error!");
            }
            finally
            {
                sql.Close();
            }
        }

        private string agregarCondiciones(String nombre, String apellido, String dni, String provincia, String sucursal, String tipo)
        {
            String condicion = "";

            if (!nombre.Equals(""))
            {
                condicion = " WHERE nombre LIKE '%" + nombre + "%'";
            }
            if (!apellido.Equals(""))
            {
                if (!condicion.Equals(""))
                {
                    condicion += " AND ";
                }
                else
                {
                    condicion = " WHERE ";
                }
                condicion += "apellido LIKE '%" + apellido + "%'";
            }
            if (!dni.Equals(""))
            {
                if (!condicion.Equals(""))
                {
                    condicion += " AND ";
                }
                else
                {
                    condicion = " WHERE ";
                }
                condicion += "dni LIKE '%" + dni + "%'";
            }
            if (!provincia.Equals(""))
            {
                if (!condicion.Equals(""))
                {
                    condicion += " AND ";
                }
                else
                {
                    condicion = " WHERE ";
                }
                condicion += "(select nomProvincia from LAG.provincias where idProvincia = idProvincia) = '" + provincia + "'";
            }
            if (!sucursal.Equals(""))
            {
                if (!condicion.Equals(""))
                {
                    condicion += " AND ";
                }
                else
                {
                    condicion = " WHERE ";
                }
                condicion += "idSucursal = " + sucursal;
            }
            if (!tipo.Equals(""))
            {
                if (!condicion.Equals(""))
                {
                    condicion += " AND ";
                }
                else
                {
                    condicion = " WHERE ";
                }
                condicion += "(select nomTipoUsu from LAG.usuarios_tipos where idTipoUsu = idTipoUsu) = '" + tipo + "'";
            }
            return condicion;
        }
        
        private void dataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            sql.Open();
            String sQuery = "SELECT idUsuario, status, usuario, password FROM LAG.usuarios WHERE idUsuario = " + (String)dataGridView[0,e.RowIndex].Value;
            
            SqlDataReader query = sql.busquedaSQLDataReader(sQuery);

            FormEditarUsuario formEditarUsuario;
            if (query.Read())
            {
                formEditarUsuario = new FormEditarUsuario(query[0].ToString(), //id
                                                          query[1].ToString(), //status
                                                          query[2].ToString(), //usuario
                                                          query[3].ToString()); //password 
                formEditarUsuario.ShowDialog(this);
            }
            
            sql.Close();
            
            
        }
    }
}
